home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / What's New? / Development Kits / Display Manager SDK v1.1 / Compiler & Runtime Files / • New universal header files • / CIncludes / Displays.h next >
Encoding:
C/C++ Source or Header  |  1996-03-05  |  23.7 KB  |  520 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces in “Display Manager Development Kit” (post ETO #18)
  8.                  Date:        3/5/96
  9.  
  10.      Copyright:    © 1984-1996 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  14.                  stack.  Include the file and version information (from above)
  15.                  in the problem description and send to:
  16.                      Internet:    apple.bugs@applelink.apple.com
  17.                      AppleLink:    APPLE.BUGS
  18.  
  19. */
  20.  
  21. #ifndef __DISPLAYS__
  22. #define __DISPLAYS__
  23.  
  24.  
  25. #ifndef __CONDITIONALMACROS__
  26. #include <ConditionalMacros.h>
  27. #endif
  28.  
  29. #ifndef __COMPONENTS__
  30. #include <Components.h>
  31. #endif
  32. /*    #include <Types.h>                                            */
  33. /*    #include <MixedMode.h>                                        */
  34.  
  35. #ifndef __VIDEO__
  36. #include <Video.h>
  37. #endif
  38. /*    #include <Quickdraw.h>                                        */
  39. /*        #include <QuickdrawText.h>                                */
  40.  
  41. #ifndef __APPLEEVENTS__
  42. #include <AppleEvents.h>
  43. #endif
  44. /*    #include <Errors.h>                                            */
  45. /*    #include <Memory.h>                                            */
  46. /*    #include <OSUtils.h>                                        */
  47. /*    #include <Events.h>                                            */
  48. /*    #include <EPPC.h>                                            */
  49. /*        #include <AppleTalk.h>                                    */
  50. /*        #include <Files.h>                                        */
  51. /*            #include <Finder.h>                                    */
  52. /*        #include <PPCToolbox.h>                                    */
  53. /*        #include <Processes.h>                                    */
  54. /*    #include <Notification.h>                                    */
  55.  
  56. #ifndef __WINDOWS__
  57. #include <Windows.h>
  58. #endif
  59. /*    #include <Controls.h>                                        */
  60. /*        #include <Menus.h>                                        */
  61.  
  62. #ifndef __EVENTS__
  63. #include <Events.h>
  64. #endif
  65.  
  66. #ifndef __PROCESSES__
  67. #include <Processes.h>
  68. #endif
  69.  
  70. #ifndef __DIALOGS__
  71. #include <Dialogs.h>
  72. #endif
  73. /*    #include <TextEdit.h>                                        */
  74.  
  75. #ifdef __cplusplus
  76. extern "C" {
  77. #endif
  78.  
  79. #if PRAGMA_ALIGN_SUPPORTED
  80. #pragma options align=mac68k
  81. #endif
  82.  
  83. #if PRAGMA_IMPORT_SUPPORTED
  84. #pragma import on
  85. #endif
  86.  
  87.  
  88. enum {
  89. /* AppleEvents Core Suite */
  90.     kAESystemConfigNotice        = 'cnfg',
  91. /* Core Suite types */
  92.     kAEDisplayNotice            = 'dspl',
  93.     kAEDisplaySummary            = 'dsum',
  94.     keyDMConfigVersion            = 'dmcv',
  95.     keyDMConfigFlags            = 'dmcf',
  96.     keyDMConfigReserved            = 'dmcr',
  97.     keyDisplayID                = 'dmid',
  98.     keyDisplayComponent            = 'dmdc',
  99.     keyDisplayDevice            = 'dmdd',
  100.     keyDisplayFlags                = 'dmdf',
  101.     keyDisplayMode                = 'dmdm',
  102.     keyDisplayModeReserved        = 'dmmr',
  103.     keyDisplayReserved            = 'dmdr',
  104.     keyDisplayMirroredId        = 'dmmi',
  105.     keyDeviceFlags                = 'dddf',
  106.     keyDeviceDepthMode            = 'dddm',
  107.     keyDeviceRect                = 'dddr',
  108.     keyPixMapRect                = 'dpdr',
  109.     keyPixMapHResolution        = 'dphr',
  110.     keyPixMapVResolution        = 'dpvr',
  111.     keyPixMapPixelType            = 'dppt',
  112.     keyPixMapPixelSize            = 'dpps',
  113.     keyPixMapCmpCount            = 'dpcc',
  114.     keyPixMapCmpSize            = 'dpcs',
  115.     keyPixMapAlignment            = 'dppa',
  116.     keyPixMapResReserved        = 'dprr',
  117.     keyPixMapReserved            = 'dppr',
  118.     keyPixMapColorTableSeed        = 'dpct',
  119.     keySummaryMenubar            = 'dsmb',
  120.     keySummaryChanges            = 'dsch',
  121.     keyDisplayOldConfig            = 'dold',
  122.     keyDisplayNewConfig            = 'dnew'
  123. };
  124.  
  125. enum {
  126.     dmOnlyActiveDisplays        = true,
  127.     dmAllDisplays                = false
  128. };
  129.  
  130. enum {
  131. /* Switch Flags */
  132.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  133.     kDepthNotAvailableBit,                                        /* Current depth not available in new mode */
  134.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  135.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  136.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  137. };
  138.  
  139. enum {
  140. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  141.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  142. */
  143.     kBeginEndConfigureBit        = 0,
  144.     kMovedDisplayBit,
  145.     kSetMainDisplayBit,
  146.     kSetDisplayModeBit,
  147.     kAddDisplayBit,
  148.     kRemoveDisplayBit,
  149.     kNewDisplayBit,
  150.     kDisposeDisplayBit,
  151.     kEnabledDisplayBit,
  152.     kDisabledDisplayBit,
  153.     kMirrorDisplayBit,
  154.     kUnMirrorDisplayBit
  155. };
  156.  
  157. enum {
  158. /* Notification Messages for extended call back routines */
  159.     kDMNotifyInstalled            = 1,                            /* At install time */
  160.     kDMNotifyEvent                = 2,                            /* Post change time */
  161.     kDMNotifyRemoved            = 3,                            /* At remove time */
  162.     kDMNotifyPrep                = 4,                            /* Pre change time */
  163.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  164.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  165.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  166.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  167. /* Notification Flags */
  168.     kExtendedNotificationProc    = (1L << 16)
  169. };
  170.  
  171. /* types for notifyType */
  172. enum {
  173.     kFullNotify,                                                /* This is the appleevent whole nine yards notify */
  174.     kFullDependencyNotify                                        /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  175. };
  176.  
  177. /* DisplayID/DeviceID constants */
  178. enum {
  179.     kDummyDeviceID                = 0x0FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  180.     kInvalidDisplayID            = 0x000,                        /* This is the invalid ID*/
  181.     kFirstDisplayID                = 0x100
  182. };
  183.  
  184. enum {
  185. /* bits for panelListFlags */
  186.     kAllowDuplicatesBit            = 0
  187. };
  188.  
  189. enum {
  190. /* bits for nameFlags */
  191.     kSuppressNumberBit            = 0,
  192.     kSuppressNumberMask            = 1,
  193.     kForceNumberBit                = 1,
  194.     kForceNumberMask            = 2,
  195.     kSuppressNameBit            = 2,
  196.     kSuppressNameMask            = 4
  197. };
  198.  
  199. /* Constants for fidelity checks */
  200. enum {
  201.     kNoFidelity                    = 0,
  202.     kMinimumFidelity            = 1,
  203.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  204.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  205. };
  206.  
  207. enum {
  208.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  209.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  210.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  211.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  212. };
  213.  
  214. /* portListFlags for DM_NewDevicePortList */
  215. enum {
  216. /* Should offline devices be put into the port list (such as dummy display) */
  217.     kPLIncludeOfflineDevicesBit    = 0
  218. };
  219.  
  220. typedef unsigned long DMFidelityType;
  221.  
  222. /* AVID is an ID for ports and devices the old DisplayID type
  223.     is carried on for compatibility
  224. */
  225. typedef unsigned long AVIDType;
  226.  
  227. typedef AVIDType DisplayIDType;
  228.  
  229. typedef void *DMListType;
  230.  
  231. typedef unsigned long DMListIndexType;
  232.  
  233. typedef VDPowerStateRec AVPowerStateRec;
  234.  
  235. typedef VDPowerStateRec *AVPowerStatePtr;
  236.  
  237. struct DMComponentListEntryRec {
  238.     DisplayIDType                    itemID;                        /* DisplayID Manager*/
  239.     Component                        itemComponent;                /* Component Manager*/
  240.     ComponentDescription            itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  241.     ResType                            itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  242.     DMFidelityType                    itemFidelity;                /* How good is this item for the specified search?*/
  243.     ResType                            itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  244.     Point                            itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  245.     unsigned long                    itemFlags;                    /* Set to 0 (future expansion)*/
  246.     ResType                            itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  247.     unsigned long                    itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  248.     unsigned long                    itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  249.     unsigned long                    itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  250.     unsigned long                    itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  251. };
  252. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  253.  
  254. typedef DMComponentListEntryRec *DMComponentListEntryPtr;
  255.  
  256. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  257. struct AVLocationRec {
  258.     unsigned long                    locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  259. };
  260. typedef struct AVLocationRec AVLocationRec;
  261.  
  262. typedef AVLocationRec *AVLocationPtr;
  263.  
  264. struct DMDepthInfoRec {
  265.     VDSwitchInfoPtr                    depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  266.     VPBlockPtr                        depthVPBlock;                /* VPBlock (including size, depth and format) */
  267.     unsigned long                    depthFlags;                    /* Reserved */
  268.     unsigned long                    depthReserved1;                /* Reserved */
  269.     unsigned long                    depthReserved2;                /* Reserved */
  270. };
  271. typedef struct DMDepthInfoRec DMDepthInfoRec;
  272.  
  273. typedef DMDepthInfoRec *DMDepthInfoPtr;
  274.  
  275. struct DMDepthInfoBlockRec {
  276.     unsigned long                    depthBlockCount;            /* How many depths are there? */
  277.     DMDepthInfoPtr                    depthVPBlock;                /* Array of DMDepthInfoRec */
  278.     unsigned long                    depthBlockFlags;            /* Reserved */
  279.     unsigned long                    depthBlockReserved1;        /* Reserved */
  280.     unsigned long                    depthBlockReserved2;        /* Reserved */
  281. };
  282. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  283.  
  284. typedef DMDepthInfoBlockRec *DMDepthInfoBlockPtr;
  285.  
  286. struct DMDisplayModeListEntryRec {
  287.     unsigned long                    displayModeFlags;
  288.     VDSwitchInfoPtr                    displayModeSwitchInfo;
  289.     VDResolutionInfoPtr                displayModeResolutionInfo;
  290.     VDTimingInfoPtr                    displayModeTimingInfo;
  291.     DMDepthInfoBlockPtr                displayModeDepthBlockInfo;    /* Information about all the depths*/
  292.     Ptr                                displayModeReserved1;        /* Reserved*/
  293.     Str255                            *displayModeName;            /* Name of the timing mode*/
  294. };
  295. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  296.  
  297. typedef DMDisplayModeListEntryRec *DMDisplayModeListEntryPtr;
  298.  
  299. struct DependentNotifyRec {
  300.     ResType                            notifyType;                    /* What type was the engine that made the change (may be zero)*/
  301.     ResType                            notifyClass;                /* What class was the change (eg geometry, color etc)*/
  302.     DisplayIDType                    notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  303.     ComponentInstance                notifyComponent;            /* What engine did it (may be 0)?*/
  304.     unsigned long                    notifyVersion;                /* Set to 0 (future expansion)*/
  305.     unsigned long                    notifyFlags;                /* Set to 0 (future expansion)*/
  306.     unsigned long                    notifyReserved;                /* Set to 0 (future expansion)*/
  307.     unsigned long                    notifyFuture;                /* Set to 0 (future expansion)*/
  308. };
  309. typedef struct DependentNotifyRec DependentNotifyRec;
  310.  
  311. typedef DependentNotifyRec *DependentNotifyPtr;
  312.  
  313. /* Exports to support Interfaces library containing unused calls */
  314. typedef pascal void (*DMNotificationProcPtr)(AppleEvent *theEvent);
  315. typedef pascal void (*DMExtendedNotificationProcPtr)(void *userData, short theMessage, void *notifyData);
  316. typedef pascal void (*DMComponentListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  317. typedef pascal void (*DMDisplayModeListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  318.  
  319. #if GENERATINGCFM
  320. typedef UniversalProcPtr DMNotificationUPP;
  321. typedef UniversalProcPtr DMExtendedNotificationUPP;
  322. typedef UniversalProcPtr DMComponentListIteratorUPP;
  323. typedef UniversalProcPtr DMDisplayModeListIteratorUPP;
  324. #else
  325. typedef DMNotificationProcPtr DMNotificationUPP;
  326. typedef DMExtendedNotificationProcPtr DMExtendedNotificationUPP;
  327. typedef DMComponentListIteratorProcPtr DMComponentListIteratorUPP;
  328. typedef DMDisplayModeListIteratorProcPtr DMDisplayModeListIteratorUPP;
  329. #endif
  330.  
  331. enum {
  332.     uppDMNotificationProcInfo = kPascalStackBased
  333.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(AppleEvent*))),
  334.     uppDMExtendedNotificationProcInfo = kPascalStackBased
  335.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  336.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  337.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))),
  338.     uppDMComponentListIteratorProcInfo = kPascalStackBased
  339.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  340.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  341.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMComponentListEntryPtr))),
  342.     uppDMDisplayModeListIteratorProcInfo = kPascalStackBased
  343.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  344.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  345.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMDisplayModeListEntryPtr)))
  346. };
  347.  
  348. #if GENERATINGCFM
  349. #define NewDMNotificationProc(userRoutine)        \
  350.         (DMNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  351. #define NewDMExtendedNotificationProc(userRoutine)        \
  352.         (DMExtendedNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  353. #define NewDMComponentListIteratorProc(userRoutine)        \
  354.         (DMComponentListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  355. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  356.         (DMDisplayModeListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  357. #else
  358. #define NewDMNotificationProc(userRoutine)        \
  359.         ((DMNotificationUPP) (userRoutine))
  360. #define NewDMExtendedNotificationProc(userRoutine)        \
  361.         ((DMExtendedNotificationUPP) (userRoutine))
  362. #define NewDMComponentListIteratorProc(userRoutine)        \
  363.         ((DMComponentListIteratorUPP) (userRoutine))
  364. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  365.         ((DMDisplayModeListIteratorUPP) (userRoutine))
  366. #endif
  367.  
  368. #if GENERATINGCFM
  369. #define CallDMNotificationProc(userRoutine, theEvent)        \
  370.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMNotificationProcInfo, (theEvent))
  371. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  372.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  373. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  374.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  375. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  376.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  377. #else
  378. #define CallDMNotificationProc(userRoutine, theEvent)        \
  379.         (*(userRoutine))((theEvent))
  380. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  381.         (*(userRoutine))((userData), (theMessage), (notifyData))
  382. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  383.         (*(userRoutine))((userData), (itemIndex), (componentInfo))
  384. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  385.         (*(userRoutine))((userData), (itemIndex), (displaymodeInfo))
  386. #endif
  387.  
  388. extern pascal GDHandle DMGetFirstScreenDevice(Boolean activeOnly)
  389.  TWOWORDINLINE(0x7000, 0xABEB);
  390. extern pascal GDHandle DMGetNextScreenDevice(GDHandle theDevice, Boolean activeOnly)
  391.  TWOWORDINLINE(0x7001, 0xABEB);
  392. extern pascal void DMDrawDesktopRect(Rect *globalRect)
  393.  TWOWORDINLINE(0x7002, 0xABEB);
  394. extern pascal void DMDrawDesktopRegion(RgnHandle globalRgn)
  395.  TWOWORDINLINE(0x7003, 0xABEB);
  396. extern pascal OSErr DMBeginConfigureDisplays(Handle *displayState)
  397.  THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  398. extern pascal OSErr DMEndConfigureDisplays(Handle displayState)
  399.  THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  400. extern pascal OSErr DMAddDisplay(GDHandle newDevice, short driver, unsigned long mode, unsigned long reserved, unsigned long displayID, Component displayComponent, Handle displayState)
  401.  THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  402. extern pascal OSErr DMMoveDisplay(GDHandle moveDevice, short x, short y, Handle displayState)
  403.  THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  404. extern pascal OSErr DMDisableDisplay(GDHandle disableDevice, Handle displayState)
  405.  THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  406. extern pascal OSErr DMEnableDisplay(GDHandle enableDevice, Handle displayState)
  407.  THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  408. extern pascal OSErr DMRemoveDisplay(GDHandle removeDevice, Handle displayState)
  409.  THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  410. extern pascal OSErr DMSetMainDisplay(GDHandle newMainDevice, Handle displayState)
  411.  THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  412. extern pascal OSErr DMSetDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long *depthMode, unsigned long reserved, Handle displayState)
  413.  THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  414. extern pascal OSErr DMCheckDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long depthMode, unsigned long *switchFlags, unsigned long reserved, Boolean *modeOk)
  415.  THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  416. extern pascal OSErr DMGetDeskRegion(RgnHandle *desktopRegion)
  417.  THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  418. extern pascal OSErr DMRegisterNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  419.  THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  420. extern pascal OSErr DMRemoveNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  421.  THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  422. extern pascal OSErr DMQDIsMirroringCapable(Boolean *qdIsMirroringCapable)
  423.  THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  424. extern pascal OSErr DMCanMirrorNow(Boolean *canMirrorNow)
  425.  THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  426. extern pascal OSErr DMIsMirroringOn(Boolean *isMirroringOn)
  427.  THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  428. extern pascal OSErr DMMirrorDevices(GDHandle gD1, GDHandle gD2, Handle displayState)
  429.  THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  430. extern pascal OSErr DMUnmirrorDevice(GDHandle gDevice, Handle displayState)
  431.  THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  432. extern pascal OSErr DMGetNextMirroredDevice(GDHandle gDevice, GDHandle *mirroredDevice)
  433.  THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  434. extern pascal OSErr DMBlockMirroring(void)
  435.  TWOWORDINLINE(0x701C, 0xABEB);
  436. extern pascal OSErr DMUnblockMirroring(void)
  437.  TWOWORDINLINE(0x701D, 0xABEB);
  438. extern pascal OSErr DMGetDisplayMgrA5World(Ptr *dmA5)
  439.  THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  440. extern pascal OSErr DMGetDisplayIDByGDevice(GDHandle displayDevice, DisplayIDType *displayID, Boolean failToMain)
  441.  THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  442. extern pascal OSErr DMGetGDeviceByDisplayID(DisplayIDType displayID, GDHandle *displayDevice, Boolean failToMain)
  443.  THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  444. extern pascal OSErr DMSetDisplayComponent(GDHandle theDevice, Component displayComponent)
  445.  THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  446. extern pascal OSErr DMGetDisplayComponent(GDHandle theDevice, Component *displayComponent)
  447.  THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  448. extern pascal OSErr DMNewDisplay(GDHandle *newDevice, short driverRefNum, unsigned long mode, unsigned long reserved, DisplayIDType displayID, Component displayComponent, Handle displayState)
  449.  THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  450. extern pascal OSErr DMDisposeDisplay(GDHandle disposeDevice, Handle displayState)
  451.  THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  452. extern pascal OSErr DMResolveDisplayComponents(void)
  453.  TWOWORDINLINE(0x7025, 0xABEB);
  454. extern pascal OSErr DMRegisterExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, unsigned short nofifyOnFlags, ProcessSerialNumberPtr whichPSN)
  455.  THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  456. extern pascal OSErr DMRemoveExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, ProcessSerialNumberPtr whichPSN, unsigned short removeFlags)
  457.  THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  458. extern pascal OSErr DMNewAVPanelList(DisplayIDType displayID, ResType panelType, DMFidelityType minimumFidelity, unsigned long panelListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  459.  THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  460. extern pascal OSErr DMNewAVEngineList(DisplayIDType displayID, ResType engineType, DMFidelityType minimumFidelity, unsigned long engineListFlags, unsigned long reserved, DMListIndexType *engineCount, DMListType *engineList)
  461.  THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  462. extern pascal OSErr DMNewAVDeviceList(ResType deviceType, unsigned long deviceListFlags, unsigned long reserved, DMListIndexType *deviceCount, DMListType *deviceList)
  463.  THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  464. extern pascal OSErr DMNewAVPortListByPortType(ResType subType, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  465.  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  466. extern pascal OSErr DMGetIndexedComponentFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMComponentListIteratorUPP listIterator, void *userData)
  467.  THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  468. extern pascal OSErr DMDisposeList(DMListType panelList)
  469.  THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  470. extern pascal OSErr DMGetNameByAVID(AVIDType theID, unsigned long nameFlags, Str255 *name)
  471.  THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  472. extern pascal OSErr DMNewAVIDByPortComponent(Component thePortComponent, ResType portKind, unsigned long reserved, AVIDType *newID)
  473.  THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  474. extern pascal OSErr DMGetPortComponentByAVID(DisplayIDType thePortID, Component *thePortComponent, ComponentDescription *theDesciption, ResType *thePortKind)
  475.  THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  476. extern pascal OSErr DMSendDependentNotification(ResType notifyType, ResType notifyClass, AVIDType displayID, ComponentInstance notifyComponent)
  477.  THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  478. extern pascal OSErr DMDisposeAVComponent(Component theAVComponent)
  479.  THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  480. extern pascal OSErr DMSaveScreenPrefs(unsigned long reserved1, unsigned long saveFlags, unsigned long reserved2)
  481.  THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  482. extern pascal OSErr DMNewAVIDByDeviceComponent(Component theDeviceComponent, ResType portKind, unsigned long reserved, DisplayIDType *newID)
  483.  THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  484. extern pascal OSErr DMNewAVPortListByDeviceAVID(AVIDType theID, DMFidelityType minimumFidelity, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  485.  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  486. extern pascal OSErr DMGetDeviceComponentByAVID(AVIDType theDeviceID, Component *theDeviceComponent, ComponentDescription *theDesciption, ResType *theDeviceKind)
  487.  THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  488. extern pascal OSErr DMNewDisplayModeList(DisplayIDType displayID, unsigned long modeListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  489.  THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  490. extern pascal OSErr DMGetIndexedDisplayModeFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMDisplayModeListIteratorUPP listIterator, void *userData)
  491.  THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  492. extern pascal OSErr DMGetGraphicInfoByAVID(AVIDType theID, PicHandle *theAVPcit, Handle *theAVIconSuite, AVLocationRec *theAVLocation)
  493.  THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  494. extern pascal OSErr DMGetAVPowerState(AVIDType theID, AVPowerStatePtr getPowerState, unsigned long reserved1)
  495.  THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  496. extern pascal OSErr DMSetAVPowerState(AVIDType theID, AVPowerStatePtr setPowerState, unsigned long powerFlags, Handle displayState)
  497.  THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  498. extern pascal OSErr DMGetDeviceAVIDByPortAVID(AVIDType portAVID, AVIDType *deviceAVID)
  499.  THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  500. extern pascal OSErr DMGetEnableByAVID(AVIDType theAVID, Boolean *isAVIDEnabledNow, Boolean *canChangeEnableNow)
  501.  THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  502. extern pascal OSErr DMSetEnableByAVID(AVIDType theAVID, Boolean doEnable, Handle displayState)
  503.  THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  504. extern pascal OSErr DMGetDisplayMode(GDHandle theDevice, VDSwitchInfoPtr switchInfo)
  505.  THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  506.  
  507. #if PRAGMA_IMPORT_SUPPORTED
  508. #pragma import off
  509. #endif
  510.  
  511. #if PRAGMA_ALIGN_SUPPORTED
  512. #pragma options align=reset
  513. #endif
  514.  
  515. #ifdef __cplusplus
  516. }
  517. #endif
  518.  
  519. #endif /* __DISPLAYS__ */
  520.